物件導向中,類別是一組具有共同特性的所有物件成員的抽象描述,它的定義描述了該類別物件共同具有的屬性,及實現該物件共同行為的方法。例如對汽車進行抽象分析後,就能大致把它分成下方的樣子。
之後會在舉出更多例子。
在Python中,類別是用關鍵字class定義,語法為下:
class 類別名稱:
    #類別建構式
    def __init__(self,參數1,參數2,參數3,...):
    #設定資料
    .
    .
    .
    def 自訂方法(self,參數1,參數2,參數3,...):   #可多個
    .
    .
    .
依照慣例,先附上最基礎的例子最好懂
class Dog:                    #定義Dog類別
    def bark(self):           #定義方法bark()
        print("汪!汪!汪!")
    
dog = Dog()                   #建立物件dog
dog.bark()                    #讓dog呼叫方法bark()
--------------------------------
汪!汪!汪!
據上方程式可知,我們建立一個Dog類別,裡面有可印出狗叫聲的方法。之後下面就是呼叫剛建立的類別方法了,那我們在程式中再增加一個物件屬性name試試:
class Dog:                    
    def bark(self,n):           
        self.name = n           #將n設定值給物件屬性name
        print("汪!汪!汪!我是"+self.name+"!")
    
dog = Dog()      
dog.bark("小東")       
--------------------------------
汪!汪!汪!我是小東!
上方在利用dog.bark("小東")呼叫時,需要給一個實際參數「小東」。那麼系統一開始便自動將dog作為第一參數self、「小東」就會排在後面做為第二參數n,傳遞給方法bark()。
__init__()方法__init__()方法用於物件的初始化,在類別被產生實體時立刻執行,通常在裡面都放一些不太變動的基本數值,如下:
class Dog:   
    def __init__(self,name,color):     #建構式
        self.name = name               #name屬性
        self.color = color             #color屬性
        
    def bark(self):
        print("汪!汪!汪!我是"+self.name+"!")
    
dog = Dog("小東","棕色")                           #建立物件自動呼叫__init__()方法
print("狗名為:"+dog.name+" 顏色為"+dog.color+"")
dog.bark()     
--------------------------------
狗名為:小東 顏色為棕色
汪!汪!汪!我是小東!
類別變數是共用的,它們可以被類別中的所有物件使用,在存活期間,任何物件對它進行的修改都會儲存反映到其他所有物件上;物件變數則是被自己的物件所擁有,即便有名稱相同的物件變數也沒有任何關聯。以下為實例:
class Dog:   
    count = 0                      #類別變數count
    
    def __init__(self,name,color):    
        self.name = name               
        self.color = color           
        Dog.count = Dog.count+1    #要使用就要加上類別名稱(每新增加1)
        
    def bark(self):
        print("汪!汪!汪!我是"+self.name+"!")
        print ("現在有%d隻狗!"%Dog.count)
    
dog = Dog("小東","棕色")
dog.bark() 
dog2 = Dog("阿黑","黑色")
dog2.bark()
dog3 = Dog("阿白","白色")
dog3.bark()
--------------------------------
汪!汪!汪!我是小東!
現在有1隻狗!
汪!汪!汪!我是阿黑!
現在有2隻狗!
汪!汪!汪!我是阿白!
現在有3隻狗!
接下來要看繼承嚕~